Formal Verification of Logic Programs: Foundations and Implementation
نویسنده
چکیده
We present the theoretical foundations of LPTP, a logic program theorem prover implemented in Prolog by the author. LPTP is an interactive theorem prover in which one can prove termination and correctness properties of pure Prolog programs that contain negation and built-in predicates like is/2 and call/n. The largest program that has been verified using LPTP is 635 lines long including its specification. The full formal correctness proof is 13128 lines long (133 pages). The formal theory underlying LPTP is the inductive extension of pure Prolog programs. This is a first-order theory that contains induction principles corresponding to the definition of the predicates in the program plus appropriate axioms for built-in predicates.
منابع مشابه
Towards Agent Programming in CHR
We investigate an approach to the design and implementation of linear logic based agent systems via the linear logic semantics of Constraint Handling Rules (CHR). The intuition behind our approach is simple: Linear logic provides strong logical foundations to reason, verify and specify agent systems beyond the limitations of classical logics, while with CHR, one can implement and analyse agent ...
متن کاملA Resource-Based Logic for Termination and Non-Termination Proofs (Technical Report)
We propose a unified logical framework for specifying and proving both termination and non-termination of various programs. Our framework is based on a resource logic which captures both upper and lower bounds on resources used by the programs. By an abstraction, we evolve this resource logic for execution length into a temporal logic with three predicates to reason about termination, non-termi...
متن کاملChallenges and Opportunities in Logic Control for Manufacturing Systems
Discrete part manufacturing systems typically consist of numerous machines working together in a coordinated and sequential fashion. Programmable logic controllers are widely used to implement the control algorithms for these machines. Systems with hundreds or thousands of inputs and outputs, many of them simple on/off switches, are not uncommon. The logic controller must handle not only the no...
متن کاملOn the Church-Rosser and Coherence Properties of Conditional Order-Sorted Rewrite Theories1
In the effort to bring rewriting-based methods into contact with practical applications both in programing and in formal verification, there is a tension between: (i) expressiveness and generality—so that a wide range of applications can be expressed easily and naturally—, and (ii) support for formal verification, which is harder to get for general and expressive specifications. This paper answ...
متن کاملA short introduction to two approaches in formal verification of security protocols: model checking and theorem proving
In this paper, we shortly review two formal approaches in verification of security protocols; model checking and theorem proving. Model checking is based on studying the behavior of protocols via generating all different behaviors of a protocol and checking whether the desired goals are satisfied in all instances or not. We investigate Scyther operational semantics as n example of this...
متن کامل